当我在运行时拥有枚举的System.Type并检查了BaseType是否为System.Enum时,我在计算如何准确创建枚举实例时遇到了问题,我的值是一个与项目匹配的int值在神秘的枚举中。到目前为止,我的代码只是上面描述的逻辑,如下所示。if(Type.GetType(type)!=null){if(Type.GetType(type).BaseType.ToString()=="System.Enum"){return???;}}在过去使用枚举时,我总是在代码时知道我正在尝试解析哪个枚举,但在这种情况下我很困惑,并且运气不好以谷歌友好的方式阐明我的问题......我通常会这样做像(
我有一个这样的枚举:enumMyEnum{[Order(1)]ElementA=1,[Order(0)]ElementB=2,[Order(2)]ElementC=3}我想列出它的元素,按我编写的自定义顺序属性排序,以便我得到一个排序的项目列表。我正在获取描述属性,但只是针对这样一个元素:FieldInfofi=value.GetType().GetField(value.ToString());DescriptionAttribute[]attributes=(DescriptionAttribute[])fi.GetCustomAttributes(typeof(Descripti
这是与HowtobindacustomEnumdescriptiontoaDataGrid类似的问题,但就我而言,我有多个属性。publicenumExpectationResult{[Description("-")]NoExpectation,[Description("Passed")]Pass,[Description("FAILED")]Fail}publicclassTestResult{publicstringTestDescription{get;set;}publicExpectationResultRequiredExpectationResult{get;set;
有什么方法可以在运行时更改enum值?例如我有以下类型enumMyType{TypeOne,//=5atruntimeTypeTwo//=3atruntime}我想在运行时将5设置为TypeOne,将3设置为TypeTwo。 最佳答案 正如其他人所指出的,答案是否定的。但是您可以重构您的代码以改用类:publicsealedclassMyType{publicintTypeOne{get;set;}publicintTypeTwo{get;set;}}...varmyType=newMyType{TypeOne=5,TypeTwo=
如果是这样,我应该如何传递参数?匹配枚举名称的字符串可以吗?如果我要传递匹配枚举项的下拉框,这会很方便。使用thisanswer中提供的解决方案会很有用如果我在提交回数据时可以轻松地绑定(bind)到枚举。 最佳答案 是的,当有这样的Controller时:enumMyAction{Lalala}publicActionResultIndex(MyActionaction){...}您只需执行Index/Lalala,一切正常。如果您需要更复杂的绑定(bind)(比如将某个字符串值映射到一个复杂的类),请使用类似StructureM
如果我在C#枚举中有重复值,说enumMyE{value1=1,value2=2,valued=1}以下字符串的值应该是什么?MyEN=(MyE)1;stringV1=N.ToString();stringV2=GetName(MyE,1);V1和V2必须包含相同的值是真的吗?这些值应该是什么?我没有在MSDN或这里找到任何关于重复枚举的“解引用”,如果我错过了,请给我指向一个链接。 最佳答案 实验表明:V1="value1"和V2="value1"但是,这并不能保证。MSDNpageonEnum.GetName状态:Ifmulti
假设我的数据库表有UserType、SalesType等列我应该拥有包含UserTypeID、userTypeName的数据库表还是应该只创建一个C#枚举? 最佳答案 两者有什么问题?如果值是用户定义的或不断变化的,enum肯定不适合。如果值严格不变(例如性别),您可以将它们作为enums以便于在应用程序中引用,也可以在数据库中作为单独的表来强制执行外键和作为一个引用。 关于c#-我应该将枚举ID/值存储在数据库中还是C#枚举中?,我们在StackOverflow上找到一个类似的问题:
众所周知,Enumerable.SelectMany将一系列序列展平为单个序列。如果我们想要一种可以压平序列序列序列的序列的方法,等等递归怎么办?我很快想出了一个使用ICollection的实现,即急切地评估,但我仍在摸索如何制作一个懒惰评估的,比如说,使用yield关键字。staticListFlatten(IEnumerablelist){varrv=newList();InnerFlatten(list,rv);returnrv;}staticvoidInnerFlatten(IEnumerablelist,ICollectionacc){foreach(vareleminlis
我有一个Controller[HttpGet][RoutePrefix("api/products/{productId}")]publicHttpResponseMessageProducts(intproductId,TypeEnumptype=TypeEnum.Clothes){if(!Enum.IsDefined(typeOf(TypeEnum),ptype))//throwbadrequestexceptionelse//continueprocessing}Myenum声明为publicTypeEnum{Clothes,Toys,Electronics}目前,如果传递了一些
我有这个:[Flags]publicenumInfoAbonne{civilite,name,firstname,email,adress,country}publicclassFormulaire{privateInfoAbonne_infoAbonne{get;set;}publicFormulaire(){}}我想Xml序列化Formulaire如果我初始化:_infoAbonne=InfoAbonne.name|InfoAbonne.email;在我的Xml结果中,我只得到:email 最佳答案 即使您将Flags属性添加到